トラブル: メディアへのパスはあっているのに表示に失敗する。
【状況】

1. 携帯端末でネットからjpeg画像をフォルダ1にダウンロードする。
2. まずファイル名に使うタイトル「リボン」をダウンロードページからコピーし、ダウンロード時にファイル名としてペースト。
3. ダウンロード終了後にパス文字列「./フォルダ1/リボン.jpg」をリンクとしてDropMeを作成。
4. エラー404で画像を表示できないDropMeになった。


【考えられること】
実際のところうまくいかない理由は無数に考えられますので、ここでは「そっちか...」という萎え系のものに限って話をします。

下の【対処】にある「Copy URL」ボタンを押して完成パスを確認するというのは表示に失敗したのがDrop-Me-Imageの代表画像の場合です。
もしDrop-Me-Imageのコンテンツである画像、ビデオやオーディオへの到達が失敗している場合は、 それらをクリックしてポップアップさせてからダブルクリック/ダブルタップしてボタン・ボックスを表示させ、そこにある「COPY」ボタンを押してコピーした スクリプトが最終的に解釈したパスを確認して下さい。


  1. 目を凝らしてもう一度見るとデータとして入力した画像へのパス文字列が実際に間違っている可能性があります。
    または、入力した画像へのパスデータは正しいのにそれを元にスクリプトが最終的に解釈したパスが間違っているが可能性があります。

    【対処】
    1. 表示に失敗したDropMeの「Copy URL」ボタンを押してスクリプトが完成させたパスをコピーします。
    2. そのスクリプトが完成させたパス自体が間違っている場合は「設定」にあるサイトルートの設定が正しくない可能性があります。
    3. スクリプトが完成させたパス自体が間違っていない場合はそれをブラウザの新規タブのアドレスにに貼り付け、サーバーがエラーを出すパスとエラーの内容を確認します。

  2. 画像へのパス文字列がそれを処理するサーバーのパス仕様とあっていない可能性があります。

    【対処】
    1. 表示に失敗したDropMeの「Copy URL」ボタンを押してスクリプトが完成させたパスをコピーします。
    2. そのスクリプトが完成させたパス自体が間違っている場合は「設定」にあるサイトルートの設定が正しくない可能性があります。
    3. 疑わしい文字や記号「例えば+記号など」、空白文字を画像へのパス文字列から排除して問題の画像が表示できないか試してみます。

  3. 見た目が同じ文字列でもそれを表示させている文字データは異なっている事があります。
    ネットのWebページやその元データは様々な処理系を経てそこにあると考えられるため、そこからコピーした文字列の文字データが他の場所にある見た目の同じ文字列の文字データと異なっていてもおかしくありません。
    それら文字を表示させている文字データを変えて問題の画像が表示できないか試してみます。

    【対処】
    1. 最速、シンプル、定番
      Windowsの場合はメモ帳に疑われるパス名やファイル名をコピペしてANSIで保存することでエラーの原因になっている部分を大抵一目で特定できます。
      例えば半角空白文字列などANSIと異なる形式で表現されている場合はこの方法でそれらが?に置き換わるので怪しい部分が可視化されます。
      それらを好きな形式に修正してうまくいくか試してみます。

    2. 何がどうなっているか知りたい - 簡単なテストでわかる場合もあります
      1. 表示に失敗したDropMeの「Copy URL」ボタンを3秒以上長押しして表示されたエディターからスクリプトが完成させたパスをコピーします。
      2. そのスクリプトが完成させたパス自体が間違っている場合は「設定」にあるサイトルートの設定が正しくない可能性があります。
      3. スクリプトが完成させたパス自体が間違っていない場合はそれをブラウザの新規タブのアドレスにに貼り付け、サーバーがエラーを出すパスとエラーの内容を確認します。
      4. サーバーの出すエラー情報の中で、ファイル名部分が「リホ?ン.jpg」のようにおかしくなってたら同じに見えているファイル名文字列が、実際のファイル名とパス文字列上のファイル名で異なっている可能性があります。
      5. サーバーのエラー表示で「リホ?ン.jpg」のようになるファイル名文字列か「リボン.jpg」のようになるファイル名文字列のどちらでもよいので、どちらか一方だけを使用することに決めて、その決めたものをファイル名やパス文字列に使ってうまくいくか試してみます。

    3. 何がどうなっているか知りたい - 面倒なテストをする場合

      最終的には元文字列の代わりにテストで「Same」と表示されたときの文字列をコピーして使うことで問題の解決を図ります。
      なお、このテストで判別できるのは当たり前ですがテストに引っかかる一部の文字だけです。
      全て可視化するには次の「違っている事を確認」を行います。

      1. ダウンロードしたファイルからファイル名をコピーする。
      2. 「作業所」ページにいってコンソールにコピーしたファイル名を貼り付ける。
      3. 「RemoveInvisibleCharacters (不可視文字を除去)」ボタンを押して結果を見る。
      4. もし結果が「Different」と表示されれば、元の文字列には不可視文字が混入しており、現在コンソール上にある文字列はボタンを押す前後で見た目は変わらないはずですが、現在はそれらが除去されたものになっています。
      5. 「Normalize string (分解&再合成)」ボタンを押して結果を見る。
      6. もし結果が「Different」と表示されれば、分解前の文字列と分解して再合成した文字列(現在コンソール上にある文字列)は見た目は同じはずですが、元データは異なっています。
      7. どのテストの結果であれ、もし一度でも「Different」と表示されたなら、同じパス文字列に見えていたものが実は異なっていたためにサーバーがファイルに到達できなかった可能性があります。
      8. 以上2種類のテストの両方を経て、最終的にどちらのボタンを押しても「Same」と表示される文字列をコピーして画像へのパスに使います。


      違っている事を確認
      上の結果で「Different」と出た場合にその違うという事を実際に自分の目で確認したい場合には以下の作業をします。

      1. コンソールをクリアして、「ファイルからコピーしたファイル名」-「パス文字列からコピーしたファイル名」を新たに作って下さい。
        ここの例では見た目には、
        リボン.jpg-リボン.jpg
        となるはずです。
      2. 「EncodeURIComponent」ボタンを押してコンソール上の文字列をエンコードした後、マイナス記号「-」の左側にある文字列と右側にある文字列を並べるなどして2つを見比べます。
        もしそれら文字列が異なっていたら、見た目には同じ「リボン.jpg」でも本当に元データは異なっていた、という確認になります。



以上